// node中加不加./区别很大.  ./中的.特意指当前跟目录（执行终端所处目录）
/*
require 导入两件事 是同步操作只有加载完成，才能执行本模块后面操作。
let temp1=require('./xxx.js') 
xxx.js是导出模块A
第一件事：首先把xxx.js文件代码自上到下执行。遇到异步操作，放入等待队列。
第二件事：如果xxx.js有（module.exports）导出对象操作。require返回就是该导出对象（堆内存地址）。否则是{}
接下来才是执行本模块里面代码

*/
let temp1=require('./temp1')
console.log(temp1)
let a = 10
// let fn = b => a + b
console.log(temp1.fn(a)) //30
console.log(temp1.fn1(a))
// console.log(a)//10
// // 函数上级作用域是该函数再哪里定义有关。和它在哪里执行无任何关系。
// // temp1.fn是一个函数，是在temp1.js定义的。所以temp1.fn上级作用域是temp1.js。temp1.fn用到的变量都会从temp1.js引用
// console.log(temp1.fn(a)) //90=100-10